package model;

import java.util.ArrayList;
import java.util.Iterator;

import model.container.AangebodenCursussen;
import model.container.Cursussen;
import utils.LesDag;
import utils.TijdsMoment1Dag;
import persistency.DatabaseToegang;
/**
 * @ Authors:
 * 
 * @Veronique De Laet
 * @Johan Willems
 * @Pierre Delaere
 * 
 * @version 2011
 */
public class CursusDagRule implements IPlanningRule {

	/* (non-Javadoc)
	 * @see model.IPlanningRule#voldoet(java.lang.String)
	 */
	DatabaseToegang db = new DatabaseToegang();
	ArrayList<String> lijst  = new ArrayList<String>();
	String dbCommand;
	
	@Override
	public String voldoet(String nieuweCursus) {
		String[] deel = nieuweCursus.split("   "); 
		String[] cursus = deel[0].split(":");// de cursusnaam is het derde deel van het eerste blok
		String[] dag = deel[3].split(":");//de dag is in het tweede deel van het vierde blok

		String boodschap = "";
/*
 * 		int dagNummer = LesDag.valueOf(dag[1]).ordinal();

		int code = getCursusCode(cursus[2]);
		Iterator<AangebodenCursus> a = AangebodenCursussen.aangebodenCursusLijst.values().iterator();
		while (a.hasNext()){
			AangebodenCursus ac = a.next();
			if(code == ac.getCursusCode()){
				TijdsMoment1Dag t = ac.getTijdDag();
				int td = t.getDag().ordinal();
				if (dagNummer == td){
					boodschap = "De cursus gaat al door op gekozen dag. ";
				}
			}
		}
*/
		dbCommand = "select count(*) ";
		dbCommand += "from aangebodencursus a,cursus c,tijdsmoment t,lesdag l ";
		dbCommand += "where a.CursusCode = c.cursusCode and a.idTijdsMoment = t.idTijdsMoment and t.dag = l.idLesDag ";
		dbCommand += "and c.cursusNaam = '" + cursus[2] + "' ";
		dbCommand += "and l.Lesdag = '" + dag[1] + "'";
		lijst = db.getFromDB(dbCommand);
		for (String element : lijst)
			if (element != "0")
				boodschap = "De cursus gaat al door op gekozen dag. ";
		return boodschap;
	}

	
	private int getCursusCode (String cursus)
	{
		int code = 0;
		Iterator<Cursus> i = Cursussen.cursusLijst.values().iterator();
		while (i.hasNext()){
			Cursus c = i.next();
			if(cursus.equals(c.getCursusNaam())){
				code = c.getCursusCode();
			}
		}
		return code;
		
	}

}
